package chapter02

object Test01_Function {
  def main(args: Array[String]): Unit = {
    //定义一个函数
    //无参数 无返回值
    def f1(): Unit = {
      println("函数f1")
    }
    f1()
    //无参 有返回值
    def f2():String = {
      return "函数f2"
    }
    println(f2())
    //有参数 有返回值
    def f3(a:Int):String = {
      return a+"函数f3"
    }
    println(f3(10))
    //可变参数 不定长参数
    def f4(names:String*): Unit = {
      println(names)
      for(i<-names){
        println(i)
      }
    }
    f4("蒋","宋","孔","陈")
    f4("王")
    //默认值参数 参数会有一个默认值 不传参数 就使用默认值
    def f5(name:String,grade:String,age:Int=20): Unit = {
      println(s"${name}+$age+${grade}")
    }
    //默认值可以传 也可以不传 不是默认值的参数必须传
    f5("张三","大数据1班")
    f5("李四","大数据1班",19)
    //参数的指定
    f5(grade="大数据1班",name = "王五")
  }
}
